#ifndef ITEMMANAGER_H
#define ITEMMANAGER_H

#include <QString>
#include <QDateTime>
#include <QJsonObject>
#include <QJsonArray>
#include <QFile>
#include <QVector>

struct Item {
    QString barcode;//一维码
    QString itemName;//物品名称
    QString methodName;//方法名称
    QDateTime creationTime;//生成时间
    QString createdBy;//生成用户
    int lightIntensity;//光强
    int integrationTime;//积分时间
    int integrationCount;//积分次数
    QVector<int> displacement;//位移
};

class ItemManager {
public:
    ItemManager();
    ~ItemManager();

    bool createItem(const Item& item);
    Item getItem(const QString& barcode);
    Item getItemByUser(const QString& barcode, const QString& username);
    QVector<Item> getAllItems();
    QVector<Item> getAllItemsByUser(const QString& username);
    bool deleteItem(const QString& barcode);
    bool deleteItemsByUser(const QString& username);
    bool checkItemExists(const QString& barcode);

private:
    void createInitialItemFile();
    QString getItemFilePath() const;
    void saveItemFile(const QJsonArray& jsonArray);
    QJsonArray loadItemFile() const;
};

#endif // ITEMMANAGER_H
